package com.tfjybj.itoo.exam.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * RoomModel
 * 房间表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 10:35:56
 */
@ApiModel(value = "RoomModel:房间表")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class RoomModel implements Serializable {

    //region 模板逆向生产来自RoomEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "room主键")
    @Column(name = "id")
    public String id;
    /**
     * 房间代码
     */
    @ApiModelProperty(value = "房间代码", required = true)
    private String code;

    /**
     * 考场分配人数
     */
    @ApiModelProperty(value = "分配人数", example = "0")
    public Integer distributivePersonNumber = 0;

    /**
     * 房间名称
     */
    @ApiModelProperty(value = "房间名称", required = true)
    private String name;

    /**
     * 容量
     */
    @ApiModelProperty(value = "容量", required = true, example = "0")
    @Column(name = "room_capacity")
    public Integer roomCapacity;

    /**
     * 房间ip范围
     */
    @ApiModelProperty(value = "房间ip范围")
    private String roomIp;

    /**
     * 建筑id
     */
    @ApiModelProperty(value = "建筑id")
    private String buildingId;

    /**
     * 房间类型：0-普通教室，1-多媒体教室，2-机房，3-实验室，4-办公室，5-室外教室(体育场)
     */
    @ApiModelProperty(value = "房间类型：0-普通教室，1-多媒体教室，2-机房，3-实验室，4-办公室，5-室外教室(体育场)")
    private String roomType;

    /**
     * 剩余容量
     */
    @ApiModelProperty(value = "剩余容量", example = "0")
    private Integer surplusCapacity;

    /**
     * 房间是否被占用（0 没有占用，1 被占用）
     */
    @ApiModelProperty(value = "房间是否被占用（0 没有占用，1 被占用）", example = "0")
    public Integer isUsed;


    //endregion

    /* *****************************以下是非模板生成的内容************************************ */

    /**
     * 地理位置(0_西校区，1_东校区)
     */
    @ApiModelProperty(value = "地理位置(0_西校区，1_东校区)")
    private String schoolBranch;
    /**
     * id
     */
    @ApiModelProperty(value = "主键")
    private String key;
    /**
     * 校区名称
     */
    @ApiModelProperty(value = "名称")
    private String title;
    /**
     * 是否为叶子
     */
    @ApiModelProperty(value = "是否为叶子")
    private boolean isLeaf;
    /**
     * children
     * 考场
     */
    @ApiModelProperty(value = "children")
    List<RoomModel> children = new ArrayList<>();

    /**
     * 考场id
     */
    @ApiModelProperty(value = "考场id")
    private String examRoomId;


    /**
     * 是否勾选
     *
     * @return
     */
    @ApiModelProperty(value = "是否勾选")
    private boolean isCheck;


    public boolean getIsCheck() {
        return isCheck;
    }

    public void setIsCheck(boolean check) {
        isCheck = check;
    }

    public boolean getIsLeaf() {
        return isLeaf;
    }

    public void setIsLeaf(boolean leaf) {
        isLeaf = leaf;
    }

}
